home *** CD-ROM | disk | FTP | other *** search
/ Hacker's Arsenal - The Cutting Edge of Hacking / Hacker's Arsenal - The Cutting Edge of Hacking.iso / texts / misc / exploit1.txt < prev    next >
Text File  |  2001-07-11  |  8KB  |  163 lines

  1. An Exploit Explained: Web based Email JavaScripts
  2. by little_v (little_v@your-house.com)
  3.  
  4. http://blacksun.box.sk - Black Sun Research Facility (where this tutorial came from)
  5. Date: 1/10/99
  6. Version: 1.0
  7.  
  8. "pleez, pleez, PLEEZ teach me how to hack a Hotmail Account!!!"
  9. -unidentified IRC user
  10.  
  11. >From here on in you walk alone.  Neither little_v OR Black Sun Research Facility AND its members will be responsible for 
  12. what you do with the information presented here.  Do not use this information to impress your "l33t0_b0rit0" friends. Do 
  13. not operate in shower.  Objects in article may be closer than they appear.
  14.  
  15. Note: If you see (x), where x is a number, it means that this term is defined at (x) at the bottom of this article.
  16.  
  17. Intro
  18. -------
  19.  
  20. The purpose of this article is NOT, I repeat, NOT to teach someone how to "hack an email account".  It's true purpose is 
  21. actually MUCH more devious.  The purpose of this and all other articles in the "An Exploit Explained: " series is to teach 
  22. readers about various web technologies, and the basics of security and exploiting.  I will try to give you a hands-on, 
  23. learn as you go type of education in computer security.  Sound good???  Then let's get in to it!!
  24.  
  25. Preface
  26. ------------
  27.  
  28. On Wednesday, Sept. 22 1999, yet another bleary day in the life of little v, the following message was sent to my inbox:
  29.  
  30. To: BugTraq 
  31. Subject: Yet another major Hotmail security hole - injecting JavaScript using "javasCript:" 
  32. Date: Wed Sep 22 1999 10:48:04 
  33. Author: Georgi Guninski 
  34. Message-ID: <37E8D004.EF848F34@nat.bg> 
  35.  
  36.  
  37. Yet another major Hotmail security hole - injecting JavaScript using
  38. "javasCript:"
  39.  
  40. There is a major security flaw in Hotmail which allows injecting and
  41. executing
  42. JavaScript code in an email message using the javascript protocol.
  43. This exploit works both on Internet Explorer 5.0 (guess IE 4.x) and
  44. Netscape Communicator 4.x.
  45. Hotmail filters the "javascript:" protocol for security reasons. But it
  46. does not filter properly
  47. the following case: "javasCript:" where "C" is the ASCII code of
  48. "C".
  49. So the following HTML is executed <IMG
  50. SRC="javasCript:alert('JavaScript is executed');"> if the user has
  51. enabled automatically loading of images (most users have).
  52. Probably this may be used in other HTML tags.
  53. Executing JavaScript when the user opens Hotmail email message allows
  54. for example
  55. displaying a fake login screen where the user enters his password which
  56. is then stolen.
  57. I don't want to make a scary demonstration, but I am sure it is also
  58. possible to read user's
  59. messages, to send messages from user's name and doing other mischief.
  60. Hotmail deliberately escapes all JavaScript (it can escape) to prevent
  61. such attacks, but obviously there are holes.
  62. It is much easier to exploit this vulnerability if the user uses
  63. Internet Explorer 5.0.
  64. AFAIK this is not a browser problem, it is Hotmail's problem.
  65.  
  66. Workaround: Disable JavaScript
  67.  
  68. The code is:
  69.  
  70. <IMG SRC="javasCript:alert('JavaScript is
  71. executed');a=window.open(document.links[2]);setTimeout('alert(\'The
  72. first message in your Inbox is from :
  73. \'+a.document.links[26].text)',20000)">
  74. ....
  75. <snip>
  76. ....
  77. Regards,
  78. Georgi Guninski
  79. http://www.securityfocus.com/external/http://www.nat.bg/~joro
  80.  
  81. Ok, don't puke, I'm going to explain what just happened in a fashion that even your dog can understand.
  82.  
  83. What is this all about?
  84. -----------------------------------
  85.  
  86. This important part of this posting to the Bugtraq(1) (http://www.securityfocus.com) mailing list is the actual exploit(2). 
  87. The exploit would be:
  88.  
  89. <IMG SRC="javasCript:alert('JavaScript is
  90. executed');a=window.open(document.links[2]);setTimeout('alert(\'The
  91. first message in your Inbox is from :
  92. \'+a.document.links[26].text)',20000)">
  93.  
  94.  
  95. What does it do?
  96. --------------------------
  97.  
  98. As this exploit, when put into an email message sent to a hotmail user, opens a little box using the "alert()"(3) function in 
  99. javascript(4), and is also supposed to read who the first message in your inbox is from.  However, this code does not 
  100. work on its own. You see, the email also says that you need to use the ASCII(5) code for "C" in the message. If I get out 
  101. my handy HTML reference book, I can see that the ASCII code is C.  If we substitute this into our little exploit, minus 
  102. the "read who the first message in your inbox" part, we get this: 
  103.  
  104. <IMG SRC="javasCript:alert('JavaScript is executed')">
  105.  
  106. How does it work?
  107. -----------------------------
  108.  
  109. Finding out how an exploit works is always the part that makes people a bit spindizzy.  If we look at that gibberish we 
  110. call code one more time we can see that it uses an <IMG> tag, which all you who took my HTML tutorial would know is 
  111. to display an image onto the page.  Because hotmail tries to be the "top dog" webmail provider, they allow you to set 
  112. autoloading of images, so the image just shows up on the same page as the mail.  When you open a new hotmail 
  113. account, this option is already set (hurray!).  The conflict happens because your normal browser allows you to put 
  114. javascript tags into your IMG tags.  Because JavaScript is a strong little language, and allows just about full control over 
  115. someone's browser, if the conditions are right.  Naturally, people like you and me started exploiting hotmail's allowing 
  116. of javascript.  Soon, the <SCRIPT> tag (the normal way to add javascript to a page) was banned from use in hotmail 
  117. messages by way of filtering(6) (boo! hiss!).  So normal guys like you and me had to "inject", or put into other html tags, 
  118. our javascript exploits. The IMG tag is perfect for this, when combined with it's autoloading capabilities.  This discovery 
  119. led to the filtering, yet again, of javascript injected into IMG tags.  Of course, hackers ALWAYS find a way, and today we 
  120. combine IMG-injecting with ASCII tags to give you the current exploit.
  121.  
  122. What else can I do with this hole in Hotmail's Security?
  123. ---------------------------------------------------------------------------------------
  124.  
  125. As is the case with many exploits, the sky is the limit.  If you know javascript, you can pretty much have a field day with 
  126. this exploit.  If you don't, here's a few more snippets of code to get you started:
  127.  
  128. This code opens a window with Blacksun's main page in it when the hotmail user opens your mail:
  129.  
  130. <IMG SRC="javasCript:window.open('http:://blacksun.box.sk')">
  131.  
  132. Note that the above code could point to any page at all (even one that simulates hotmail's "you have been logged out" 
  133. screen. *wink* *wink* HINT HINT ;-) ) 
  134.  
  135. This code opens 100 windows with blacksun's main page in it (tee hee! self promotion is good!):
  136.  
  137. <IMG SRC="javasCript:for(var i = 0; i < 100; i++) window.open('http:://blacksun.box.sk');">
  138.  
  139. The rest is up to you, my friend.  By the way, if Hotmail finds a way to make this exploit null and void, please don't mail 
  140. me, as I probably already know.  Just keep looking for the next big exploit, and then when you've found it, you may tell 
  141. me.
  142.  
  143. That's all for this exploit, if anyone needs me i'll be on irc.2600.net.
  144.  
  145. Terms Defined 
  146. -----------------------
  147.  
  148. (1) Bugtraq - A mailing list where people publicize holes and exploits in various softwares.  I highly suggest that you 
  149. subscribe at http://www.securityfocus.com.
  150. (2) Exploit - Webster's dictionary sez: " exploit (eks'ploit') - an act remarkable for brilliance or daring; bold deed".  Wow. 
  151.  Think of that the next time you steal someone's ICQ password.
  152. (3) alert() function - A function built into the Javascript language that brings up a rectangle box with the message passed 
  153. to the alert() function in it. Note: alert('message goes here')
  154. (4) Javascript - A scripting language built into most popular browsers that gives much greater control over web page 
  155. content than HTML alone (chicks dig pages with javascript 2 to 1 over standard HTML!).
  156. (5) ASCII - A standard for characters on and beyond the normal keyboard.
  157. (6) Filtering - A way to 'catch and detain' certain text or commands.  Hotmail, for example, filters for the "javascript" text.
  158.  
  159. Some URLs
  160. -----------------------
  161.  
  162. (1) http://www.htmlgoodies.com - they have some javascript tutorials if you wanna learn javascript.
  163. (2) http://come.to/the-lamer - they have some fake hotmail pages that will make you think you were logged out for some reason and ask you to input your password. They also have some tutorials on how to use these pages, etc' etc' etc'.